home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 35 / Amiga Format AFCD35 (Issue 119, Jan 1999).iso / -in_the_mag- / reader_requests / fredobbutils / bbsrc / coolresident.s < prev    next >
Text File  |  1998-11-06  |  1KB  |  60 lines

  1. * Installer un programme résistant au reset
  2. * par l'intermédiaire du vecteur CoolCapture
  3.  
  4. * Install a resident program via CoolCapture Vector
  5.  
  6.  
  7. AllocMem    equ    -198
  8. AllocAbs    equ    -204
  9. CopyMemQuick    equ    -630
  10.  
  11. CoolCapture    equ    46
  12.  
  13. InstallProg:
  14.     lea    FinProgramme(pc),a0
  15.     lea    ResetProgramme(pc),a1
  16.     suba.l    a1,a0
  17.     move.l    a0,d0
  18.     addq    #4,d0
  19.     moveq    #-4,d1
  20.     and.l    d1,d0        ;aligner sur multiple de 4
  21.     move.l    d0,d2
  22.     moveq    #$1,d1        ;public mem
  23.     move.l    4.w,a6
  24.     jsr    AllocMem(a6)
  25.     tst.l    d0
  26.     beq.s    fin_inst
  27.     move.l    d0,a1
  28.     move.l    a1,CoolCapture(a6)    ;adr programme résident
  29.     lea    ResetProgramme(pc),a0
  30.     move.l    d2,d0
  31.     jsr    CopyMemQuick(a6)
  32.     clr    82(a6)
  33.     lea    34(a6),a0
  34.     moveq    #(82-34)/2,d0
  35.     clr    d1
  36. ok:    add    (a0)+,d1
  37.     dbf    d0,ok
  38.     not    d1
  39.     move    d1,82(a6)
  40. fin_inst:
  41.     moveq    #0,d0
  42.     rts
  43.  
  44. ResetProgramme:
  45.     lea    ResetProgramme(pc),a1
  46.     lea    FinProgramme(pc),a0
  47.     suba.l    a1,a0
  48.     move.l    a0,d0
  49.     move.l    a6,-(sp)
  50.     move.l    4.w,a6
  51.     jsr    AllocAbs(a6)
  52.     move.l    (sp)+,a6
  53.  
  54. *********** Entrer ici le programme *********************
  55. * type in program to be executed at system (warm)reboot *
  56.  
  57.  
  58. *********************************************************
  59. FinProgramme:
  60.